As well known, computer systems (e.g., personal computers, laptops, handheld computing devices, cellular phones) allow users to perform tasks and receive services using one or more various types of computer applications. For example, commonly used and prominent computer applications relate to word processing, electronic mail services, portable document viewing and editing, spreadsheets, graphics packages, and Internet browsers. Such applications, referred to herein as “mainstream applications,” are generally commercial in nature and complexly coded by teams of developers over relatively long periods of time.
One type of mainstream application that has become almost universal among computer systems is the Internet browser (e.g., Internet Explorer® by Microsoft Corporation, Safari™ by Apple Computer, Inc., Blazer® by Palm, Inc., Firefox® by Mozilla Corporation, Opera™ by Opera Software ASA). As the number of computer systems having access to the Internet continues to grow, users are becoming increasingly accustomed to the availability of real-time information accessible via Internet browsers. Those skilled in the art will recognize that the amount of real-time information available on the Internet is virtually boundless. For example, using their Internet browser, a user can retrieve real-time weather information, news, stock prices, sports scores, and traffic conditions.
Using a mainstream Internet browser application to access information on the Internet generally requires the user to open up the Internet browser, search for or enter an address of a website, wait for the website to load, and then click on links or otherwise navigate through the website for the desired information. In an effort to streamline this process, mini-applications have been made available to allow a user to see real-time Internet-based information on his/her “desktop.” Such mini-applications have become to be known in the art as “widgets.”
Widgets are generally not considered mainstream applications in that they are not commercial in nature and are typically created by individual users (or developers). In fact, those skilled in the art will recognize that one of the main features of widgets is the ability of “everyday” users to create simple applications for retrieving and showing various different types of Internet-based information.
Once a widget application has been developed, a widget engine is used to process and render the widget application. Typically, the widget engine itself does not need to be modified or configured by the widget developer in order for the widget application to work. In such a manner, large numbers of widget applications can be created by and made available to the public without the need to understand the inner-workings of a particular widget engine. Various widget engines are commercially available for download and installation (e.g., Yahoo! Widget Engine (formerly Konfabulator) (available at http://widgets.yahoo.com/) by Yahoo! Inc., Dashboard (available at http://www.apple.com/macosx/features/dashboard/) by Apple Computer, Inc.).
FIG. 1 shows a typical flow process for rendering a widget. In ST10, the user codes a widget application using prescribed languages and formats (e.g., hypertext markup language (HTML), JavaScript, extensible markup language (XML), cascading style sheets (CSS)). Once the widget application has been coded, a widget engine, in ST12, processes the widget application code written in ST10. Based on the processed code, the widget engine, in ST14, renders the widget as described in code written in ST10. Further, the widget is said to be rendered “strictly” in that the appearance (e.g., layout, colors, feature shapes and sizes) of the widget adheres to the specific description set forth in the written widget application code.